from typing import List


class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        s = ''
        # zip() 函数用于将可迭代的对象作为参数，将对象中对应的元素打包成一个个元组，然后返回由这些元组组成的对象，这样做的好处是节约了不少的内存。
        # 我们可以使用 list() 转换来输出列表。
        # 如果各个迭代器的元素个数不一致，则返回列表长度与最短的对象相同，利用 * 号操作符，可以将元组解压为列表。
        for lst in zip(*strs):
            print(lst)
            # set() 函数创建一个无序不重复元素集，可进行关系测试，删除重复数据，还可以计算交集、差集、并集等。
            if len(set(lst)) == 1:
                s += lst[0]
            else:
                break
        return s


solution = Solution()
res = solution.longestCommonPrefix(["flower", "flow", "flight", "fly"])
print(res)
